package com.chinazyjr.framework.common.utils.fenPei;

import org.springframework.beans.BeansException;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

public class MoneyUtil {

    /**
     * 加(保留两位小数)
     */
    public static BigDecimal AmountAdd(BigDecimal... values) {
        BigDecimal sum = BigDecimal.ZERO;
        for (BigDecimal value : values) {
            sum = MoneyUtil.AmountAdd(sum, value);
        }
        return sum;
    }

    /**
     * 减(保留两位小数)
     */
    public static BigDecimal AmountSub(BigDecimal value1, BigDecimal value2) {
        BigDecimal b1 = MoneyUtil.AmountHalfUP(value1);
        BigDecimal b2 = MoneyUtil.AmountHalfUP(value2);
        return b1.subtract(b2);
    }

    /**
     * 四舍五入,保留2位小数
     */
    public static BigDecimal AmountHalfUP(BigDecimal amount) {
        if (amount == null) {
            return BigDecimal.ZERO;
        }
        // 四舍五入,保留2位小数
        DecimalFormat df = new DecimalFormat("#.##");
        df.setRoundingMode(RoundingMode.HALF_UP);
        return new BigDecimal(df.format(amount));
    }

    /**
     * 取100的整数倍
     */
    public static BigDecimal roundHundred(BigDecimal amount) {
        BigDecimal b = new BigDecimal(amount.doubleValue()%100);
        BigDecimal a1 = AmountSub(amount, b);
        return a1;
    }

    public static void main(String[] args) throws BeansException {
        roundHundred(BigDecimal.ZERO);
    }

}

